diff --git a/system/libraries/Loader.php b/system/libraries/Loader.php
index 43d1cbe..96ec0c9 100644
--- a/system/libraries/Loader.php
+++ b/system/libraries/Loader.php
@@ -32,7 +32,7 @@
 	var $_ci_ob_level;
 	var $_ci_view_path		= '';
 	var $_ci_is_php5		= FALSE;
-	var $_ci_use_instance 	= FALSE; // Whether we should use $this or $CI =& get_instance()
+	var $_ci_is_instance 	= FALSE; // Whether we should use $this or $CI =& get_instance()
 	var $_ci_cached_vars	= array();
 	var $_ci_models			= array();
 	var $_ci_helpers		= array();
@@ -119,7 +119,7 @@
 			return;
 		}
 		
-		if ($this->_ci_use_instance())
+		if ($this->_ci_is_instance())
 		{
 			$CI =& get_instance();
 			if (isset($CI->$name))
@@ -147,7 +147,7 @@
 			if ($db_conn === TRUE)
 				$db_conn = '';
 		
-			if ($this->_ci_use_instance())
+			if ($this->_ci_is_instance())
 			{
 				$CI->load->database($db_conn, FALSE, TRUE);
 			}
@@ -166,7 +166,7 @@
 
 		$model = ucfirst($model);
 				
-		if ($this->_ci_use_instance())
+		if ($this->_ci_is_instance())
 		{
 			$CI->$name = new $model();	
 			foreach (get_object_vars($CI) as $key => $var)
@@ -472,7 +472,7 @@
 	 */
 	function language($file = '', $lang = '', $return = FALSE)
 	{
-		if ($this->_ci_use_instance())
+		if ($this->_ci_is_instance())
 		{
 			$CI =& get_instance();
 			return $CI->lang->load($file, $lang, $return);
@@ -494,7 +494,7 @@
 	 */
 	function config($file = '')
 	{		
-		if ($this->_ci_use_instance())
+		if ($this->_ci_is_instance())
 		{
 			$CI =& get_instance();
 			$CI->config->load($file);
@@ -529,7 +529,7 @@
 			show_error('You must include the name of the table you would like access when you initialize scaffolding');
 		}
 		
-		if ($this->_ci_use_instance())
+		if ($this->_ci_is_instance())
 		{
 			$CI =& get_instance();
 			$CI->_ci_scaffolding = TRUE;
@@ -559,7 +559,7 @@
 		// to become accessible from within the Controller and Model functions.
 		// Only needed when running PHP 5
 		
-		if ($this->_ci_use_instance())
+		if ($this->_ci_is_instance())
 		{
 			$CI =& get_instance();
 			foreach (get_object_vars($CI) as $key => $var)
@@ -760,7 +760,7 @@
 		}
 		
 		// Instantiate the class		
-		if ($this->_ci_use_instance())
+		if ($this->_ci_is_instance())
 		{
 			$CI =& get_instance();
 			if ($config !== NULL)
@@ -809,7 +809,7 @@
 		// Load any custome config file
 		if (count($autoload['config']) > 0)
 		{			
-			if ($this->_ci_use_instance())
+			if ($this->_ci_is_instance())
 			{
 				$CI =& get_instance();
 				foreach ($autoload['config'] as $key => $val)
@@ -893,7 +893,7 @@
 			return;
 		}
 
-		if ($this->_ci_use_instance())
+		if ($this->_ci_is_instance())
 		{
 			$CI =& get_instance();
 			foreach ($this->_ci_models as $model)
@@ -934,7 +934,7 @@
 	 * @access	private
 	 * @return	bool
 	 */
-	function _ci_use_instance()
+	function _ci_is_instance()
 	{
 		if ($this->_ci_is_php5 == TRUE)
 		{
